package com.qianying.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 店铺信息实体类
 * 映射数据库shop_info表，存储店铺基本信息及关联ID
 * 关联region表和china_area表获取名称信息（非数据库字段）
 *
 * @author check
 * @date 2025-08-01
 */
@Data
@TableName("shop_info")
public class ShopInfo {
    /**
     * 主键ID（自增）
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 客户Id
     */
    private Long customerId;

    /**
     * 大区名称（非数据库字段，关联查询获取）
     */
    @TableField(exist = false)
    private String customerName;

    /**
     * 所属大区ID（关联region表）
     */
    private Long regionId;

    /**
     * 省份ID（关联china_area表）
     */
    private Long provinceId;

    /**
     * 城市ID（关联china_area表）
     */
    private Long cityId;

    /**
     * 区域ID（关联china_area表）
     */
    private Long districtId;

    /**
     * 大区名称（非数据库字段，关联查询获取）
     */
    @TableField(exist = false)
    private String regionName;

    /**
     * 省份名称（非数据库字段，关联查询获取）
     */
    @TableField(exist = false)
    private String provinceName;

    /**
     * 城市名称（非数据库字段，关联查询获取）
     */
    @TableField(exist = false)
    private String cityName;

    /**
     * 区域名称（非数据库字段，关联查询获取）
     */
    @TableField(exist = false)
    private String districtName;

    /**
     * 店铺名称
     */
    private String shopName;

    /**
     * 店铺简称
     */
    private String shopAbbreviation;

    /**
     * 店铺号
     */
    private String shopNumber;

    /**
     * 注册时间
     */
    private Date registrationTime;

    /**
     * 对接客服
     */
    private String customerService;

    /**
     * 对接区管
     */
    private String districtManager;

    /**
     * 所属商场
     */
    private String mall;

    /**
     * 开票抬头
     */
    private String invoiceTitle;

    /**
     * 税号
     */
    private String taxNumber;

    /**
     * 默认结算方式
     */
    private String defaultSettlementMethod;

    /**
     * 默认验收方式
     */
    private String defaultReceiptMethod;

    /**
     * 财务联系人
     */
    private String finance;

    /**
     * 详细地址
     */
    private String addressDetail;

    /**
     * 是否需要购买公众险（0-否，1-是）
     */
    private Integer needPublicInsurance;

    /**
     * 是否需要购买师傅意外险（0-否，1-是）
     */
    private Integer needWorkerInsurance;

    /**
     * 店长姓名
     */
    private String shopManagerName;

    /**
     * 店长联系电话
     */
    private String shopManagerPhone;

    /**
     * 店长固定电话
     */
    private String shopManagerFixedPhone;

    /**
     * 层高
     */
    private String floorHeight;

    /**
     * 是否夜间施工
     */
    private String nightConstruction;

    /**
     * 最近开业日期
     */
    private Date lastOpeningDate;

    /**
     * 梯子高度
     */
    private String ladderHeight;

    /**
     * 办证费
     */
    private BigDecimal certificateFee;

    /**
     * 是否需要报价审批（0-否，1-是）
     */
    private Integer quoteApprovalRequired;

    /**
     * 报价审批审核人
     */
    private String quoteApprovalAuditor;

    /**
     * 报价审批审核人联系电话
     */
    private String quoteApprovalAuditorPhone;

    /**
     * 报价审批审核人固定电话
     */
    private String quoteApprovalAuditorFixedPhone;

    /**
     * 报价审批核准人
     */
    private String quoteApprovalApprover;

    /**
     * 报价审批核准人联系电话
     */
    private String quoteApprovalApproverPhone;

    /**
     * 报价审批核准人固定电话
     */
    private String quoteApprovalApproverFixedPhone;

    /**
     * 是否需要验收审批（0-否，1-是）
     */
    private Integer acceptanceApprovalRequired;

    /**
     * 验收审批审核人
     */
    private String acceptanceApprovalAuditor;

    /**
     * 验收审批审核人联系电话
     */
    private String acceptanceApprovalAuditorPhone;

    /**
     * 验收审批审核人固定电话
     */
    private String acceptanceApprovalAuditorFixedPhone;

    /**
     * 验收审批核准人
     */
    private String acceptanceApprovalApprover;

    /**
     * 验收审批核准人联系电话
     */
    private String acceptanceApprovalApproverPhone;

    /**
     * 验收审批核准人固定电话
     */
    private String acceptanceApprovalApproverFixedPhone;

    private Long status;
    /**
     * 创建时间（自动生成）
     */
    private Date createTime;

    /**
     * 更新时间（自动更新）
     */
    private Date updateTime;
}
